1. Field of the Invention
The present invention is directed to digital communications systems, processes, apparatus and related software utilizing error-correcting codes. More particularly, the invention relates to self-inverting interleavers/de-interleavers for use with wireless communication systems that rely on turbo-codes to perform signal error-correction. Accordingly, the general objects of the invention are to provide novel systems, methods, apparatus and software of such character.
2. Description of the Related Art
The field of error control coding was revolutionized in 1993 with the invention of turbo codes. With the use of turbo codes, it is possible to achieve extremely low error probabilities at low signal to noise ratios with decoding circuitry that is within the realm of practical implementation. A turbo code system can be thought of as a way of forming a very strong code from a suitable combination of two or more weak codes. The goal is to achieve the performance of the strong code with the decoding complexity implied by the weak codes. One important factor in the success of a turbo code design is that most of the error sequences that cause one of the constituent codes to fail must be decoded correctly by the other constituent code (this property being implied by the constraint that the overall code must be stronger than each individual code). The most basic turbo code system operated by (1) encoding a stream of data using one recursive convolutional code, (2) permuting (“interleaving”) the same stream of data, (3) encoding the permuted data using a recursive convolutional encoder, and (4) transmitting both streams as the signal.
At the receiving end of the basic turbo code system, decoding proceeded iteratively. In particular, a first decoder decoded the received demodulated sequence for the first convolutionally coded stream. Then, the resulting estimates (and associated estimates of the reliability of those estimates) were interleaved and fed to a second decoder, which used them as an aid in decoding the second convolutionally encoded sequence. The resulting estimates for the second decoder were then de-interleaved and fed to the first decoder for the first sequence. Finally, they were used in a second pass of decoding. This procedure may have continued for several iterations as desired.
One important feature of turbo code communications systems is an element referred to as an “interleaver” (or, alternatively, “permuter” or “shuffler”). The general function of an interleaver is to receive a set of bits or symbols and to rearrange them into a different order.
In designing a useful interleaver there are two competing goals: the interleaver should have high performance and it should have low implementation complexity. Several different design rules have been suggested for the design of turbo code interleavers and two interleaver attributes are widely accepted as reliable indicia of interleaver performance. The first is “separation” which requires that two symbols that are close together in the original sequence should be far apart in the interleaved sequence. To a first order approximation, the influence of one symbol on another declines as the distance between them in the sequence increases. It is, therefore, desirable to preclude the possibility that two erroneous symbols are in close proximity in both the original and interleaved sequences. The second is “dispersion.” A large dispersion is desirable because the error probability in a turbo code system is driven by a combination of several different types of basic failure mechanisms. The use of interleavers with a large dispersion reduces the number of dominant error mechanisms.
These two attributes may be quantified as follows. The “separation” or “s-parameter” of an interleaver is the smallest number such that two inputs to the interleaver at a distance less than s from each other are guaranteed to be mapped, by the interleaver, to outputs that are at distance at least s apart. Interleavers may be represented by an interleaver scatter plot, which is a two-dimensional plot in which a point is plotted for every pair (i, π(i)). Equivalently, the same information may be expressed as an n×n matrix containing a 1 at every point of the interleaver scatter plot and 0 elsewhere; this matrix will be referred to as the permutation matrix associated with the interleaver. If the interleaver has an s-parameter value of s0, then a box centered at an interleaver point and extending a distance s0 in each direction will include no other interleaver points.
Dispersion may be expressed in terms of displacement vectors (Δx=j−i, Δy=π(j)−π(i)) for any pair of inputs i,j where i<j. Dispersion is the number of distinct displacement vectors that occur out of the n(n−1)/2 possible vectors. The “normalized dispersion” is the ratio of the actual dispersion to the maximum possible dispersion.
The simplest known interleavers are “rectangular” or “block” interleavers. These interleavers store data streams into a rectangular array row by row, and read out the stored data column by column. Among previously known interleavers, a subclass of the block interleavers are easily shown to be self-inverting. An N×M block interleaver on blocks of size n=N M has permutation function given by π(i)=(M. i) mod (N M−1) if we number the positions from 0 to n−1 rather than from 1 to n. The self-inverting constraint requires that π(π(i))=i. This condition is satisfied if N=M as then π(π(i))=π(M. i) mod (N M−1)=(M^2 i) mod (M^2−1)=i.
It can be shown that the normalized dispersion of block interleavers approaches zero. Such an interleaver, however, has an s-parameter of √{square root over (n)} which is the highest possible s-parameter for an interleaver. Nonetheless, the dispersion of this interleaver is so low that it gives poor performance in practice. Furthermore, it is known that block interleavers give markedly inferior performance in turbo coding applications because such interleavers are subject to a significant “error floor” problem, in which error probability decays very slowly with increasing signal to noise ratio beyond a given point. This too is a major reason for the poor performance of such block interleavers.
Interleavers are used in various places in communications systems. Interleavers with good properties for some applications do not necessarily work well in the turbo coding framework. Various properties have been used to express the quality of an interleaver. For example, separation is a widely used measure of interleaver quality. The block interleavers discussed above can provide a very good separation measure. However, for turbo codes, interleavers are needed which simultaneously have several good qualities. For example, it is desirable for interleavers for turbo coding have good separation and at least one other good property, such as dispersion. None of the related prior art interleavers simultaneously offer he qualities of high separation, large dispersion and self-inversion.
As a result of such deficiencies, recent interleaver design efforts have focused on identifying interleavers that perform better than the basic block interleavers described above. For example, much work has been done on pseudo-random or deterministic interleavers, i.e., on the production of deterministic rules that succinctly describe an interleaver that performs well. These include Berrou-Glavieux interleavers, Welch-Costas interleavers, JPL interleavers, Takeshita-Costello interleavers, and others. The advantages offered by deterministic interleavers are based on the recognition that deterministic interleavers consume fewer system resources compared to unstructured or random interleavers. This advantage, however, is only beneficial if the deterministic specification can be efficiently implemented in the decoder. For many applications, such as a turbo coding chip, the processing of algorithmic instructions with interleaver circuitry is either not feasible or itself consumes excessive resources.
One significant deficiency associated with most conventional interleavers is that they result in considerable circuit complexity when physically implemented in a communications system. Naturally, this complexity also increases the cost of implementing an effective interleaver. In part, this difficulty arises from the fact that conventional interleaver design often starts with the derivation of an elegant mathematical formula, and then seeks a circuit design to implement that formula. Too often, this approach results in a complicated, inefficient and expensive circuit despite the fact that it may perform in accordance with a relatively simple and elegant mathematical formula.
This problem is further exacerbated by the fact that, for each interleaver designed and implemented, a compatible de-interleaver must also be designed and implemented to reverse the interleaving process during use of a given system. Thus, the negative impact of relying on unnecessarily complex circuitry is typically two-fold.
There is, accordingly, a need in the art for novel and more cost-effective methods, systems and apparatus for reducing errors in turbo code communications systems. Such methods and apparatus should yield simpler, or at least less expensive, implementing interleaver/de-interleaver circuitry while still yielding a level of effectiveness that is equal to or greater than conventional turbo code interleaving methods and apparatus.
The self-inverting turbo code interleavers of the present invention provide the foregoing advantages. Numerous other advantages and features of the present invention will become apparent to those of ordinary skill in the art from the following description of the example embodiments, from the claims and from the accompanying drawings.